/*
 * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
 * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 */

package java.lang.reflect;

/**
 * A common interface for all entities that declare type variables.
 *
 * @since 1.5
 */
// 声明类型变量的所有实体的通用接口。
public interface GenericDeclaration extends AnnotatedElement {
    /**
     * Returns an array of {@code TypeVariable} objects that
     * represent the type variables declared by the generic
     * declaration represented by this {@code GenericDeclaration}
     * object, in declaration order.  Returns an array of length 0 if
     * the underlying generic declaration declares no type variables.
     *
     * @return an array of {@code TypeVariable} objects that represent
     *     the type variables declared by this generic declaration
     * @throws GenericSignatureFormatError if the generic
     *     signature of this generic declaration does not conform to
     *     the format specified in
     *     <cite>The Java&trade; Virtual Machine Specification</cite>
     */
    // 按声明顺序返回一个对象数组 TypeVariable ，这些对象表示由此 GenericDeclaration 对象表示的泛型声明声明的类型变量。
    // 如果基础泛型声明未声明任何类型变量，则返回长度为 0 的数组。
    // 返回：
    // 表示此泛型声明声明的类型变量的对象数组TypeVariable
    // 抛出：
    // GenericSignatureFormatError– 如果此通用声明的通用签名不符合 Java™ 虚拟机规范中指定的格式
    public TypeVariable<?>[] getTypeParameters();
}
